Design maintenance: unexpected architectural interactions (experience report)
نویسندگان
چکیده
There have been many systems developed that attempt to recover design and structure from code. In this paper, we present our experience with using one such tool, SoFi, to extract design structure from a large industrial system written in C. We compare the extracted structure to that which was intended by the designers of the system. We observe and categorize, for our system, the reasons why these two views diier. We observe that seemingly minor decisions in implementation, can have a large impact on the extracted design, and draw some conclusions about the practicality of trying to recover \intended designs" from source code.
منابع مشابه
Design Maintenance: Unexpected Architectural Interactions
There have been many systems developed that attempt to recover design and structure from code. In this paper, we present our experience with using one such tool, SoFi, to extract design structure from a large industrial system written in C. We compare the extracted structure to that which was intended by the designers of the system. We observe and categorize, for our system, the reasons why the...
متن کاملViability for codifying and documenting architectural design decisions with tool support
Current software architecture practices have been focused on modeling and documenting the architecture of a software system by means of several architectural views. In practice, the standard architecture documentation lacks explicit description of the decisions made and their underlying rationale, which often leads to knowledge loss. This fact strongly affects the maintenance activities as we n...
متن کاملArchitectural Evolution of a Software Product Line: an experience report
This work presents an experience report on the architectural decisions taken in the evolution of a Software Product Line (SPL) of Model-based Testing tools (PLeTs). This SPL was partially designed and developed with the intention of minimizing effort and time-to-market during the development of a family of performance testing tools. With the evolution of our research and the addition of new fea...
متن کاملAn Empirical Study of Architectural Decay in Open-Source Software
Architecture is the set of principal design decisions about a software system. In practice, new architectural decisions are added and existing ones reversed or modified throughout a system’s lifetime. Frequently, these decisions deviate from the architect’s well-considered intent, and software systems regularly exhibit increased architectural decay as they evolve. The manifestations of such ill...
متن کاملModeling the Interactions between Decisions within Software Architecture Knowledge
Software architecture is developed as a result of a selection process for software architectural solutions. The complexity, diversity and evolution nature of architectural solutions’ interactions forces the architect to make critical design decisions based only on his own experience. Even though, the same design problem has already been addressed by another architect in a similar situation. In ...
متن کامل